package com.zhu.pre.mapper;

import com.sanploy.common.domain.UserAddress;
import com.sanploy.common.domain.vo.UserAddressVo;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * Created by yingzhi zhu on 2017/9/26.
 * @author yingzhi zhu
 * 手机用户收货地址数据库操作接口
 */
@Mapper
public interface MUserAddressMapper {
    /**
     * 添加 用户收货地址
     * @param userAddress 用户地址实体
     * @return 数据影响行数
     */
    int addUserAddress(UserAddress userAddress);

    /**
     * 查找用户的地址
     * @param user_id 用户id
     * @return 用户收货地址实体 list集合
     */
    List<UserAddressVo> selectUserAddress(@Param("user_id") Long user_id);

    /**
     * 擦好找用户默认收货地址
     * @param user_id 用户id
     * @return 用户收货地址实体
     */
    UserAddressVo selectUserDefaultAddress(@Param("user_id") Long user_id);

    /**
     * 更新用户默认收货地址
     * @param id 收货地址id
     * @param order_sort 排序大小
     * @return 数据库影响行数
     */
    @Update("UPDATE user_address SET order_sort=#{order_sort} WHERE id=#{id}")
    int updateDefaultAddress(@Param("id") Long id, @Param("order_sort") int order_sort);

    /**
     * 删除用户收货地址
     * @param id 收货地址id
     * @param user_id 用户id
     * @return 数据库影响行数
     */
    @Delete("Delete FROM user_address WHERE  id=#{id} AND user_id=#{user_id}")
    int deleteAddress(@Param("id") Long id, @Param("user_id") Long user_id);

    /**
     * 查看用户收货地址详情
     * @param id 收货地址id
     * @param user_id 用户id
     * @return
     */
    @Select("SELECT * FROM  user_address WHERE  id=#{id}  AND user_id=#{user_id}")
    UserAddressVo selectOneAddress(@Param("id") Long id, @Param("user_id") Long user_id);

    /**
     * 更新用户收货地址
     * @param userAddress 用户收货地址实体
     * @return 数据库影响行数
     */
    int updateAddress(UserAddress userAddress);
}
